package com.rpc;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
import java.util.Map;

/**
 * 通过RPC来获取另一模块中的石油管理信息
 * 该模块作为本次RPC连接的客户端 另一模块为服务端
 */
public interface OilInfoGet extends Remote {
    /**
     * 获取汇总时间间隔
     * @return 汇总时间间隔 以秒为单位
     */
    long getSummaryInterval() throws RemoteException;

    /**
     * 获取需要汇总的井口ID
     * @return 需要汇总的井口ID列表
     */
    List<String> getWellIds() throws RemoteException;

    /**
     * 获取上次汇总时间
     * @param 目标井口id
     * @return 相应井口id的上次汇总的时间戳
     */
    String getLastSummaryTime(String wellID) throws RemoteException;

    /**
     * 将汇总结果发送至另一模块
     * @param map中保存了汇总后的结果与汇总完成时的时间戳
     * sumFlow      : (float)  流量的总和
     * meanTemp     : (float)  温度的均值
     * meanPress    : (float)  压力的均值
     * meanWaterCont: (float)  含水量均值
     * sumOilCont   : (float)  含油量总和
     * meanGasCont  : (float)  含气量总和
     * latestTime   : (String类型的时间戳) 当前汇总时的截止时间
     * wellID       : (String)  井口ID
     */
    void sendSummaryResult(Map<String, Object> res) throws RemoteException;

}
